﻿using Entidades;
using System.Collections.Generic;

namespace ModuloVentas
{
    public class Cliente
    {
        Entity_cliente datos;
        public Entity_cliente Datos
        {
            get { return datos; }
            set { datos = value; }
        }

        Entity_clientedatosimpositivos datosImpositivos;
        public Entity_clientedatosimpositivos DatosImpositivos
        {
            get { return datosImpositivos; }
            set { datosImpositivos = value; }
        }

        Entity_clienteotrosdatos datosOtros;
        public Entity_clienteotrosdatos DatosOtros
        {
            get { return datosOtros; }
            set { datosOtros = value; }
        }

        public List<string> ObtenerTiposFactura(int situacionIvaEmpresa)
        {
            List<string> facturas = new List<string>();
            if (datosImpositivos == null)
            {
                CargarDatosImpositivos();
            }

            if (datosImpositivos != null)
            {
                int tipos = datosImpositivos.Situacioniva;
                ESituacionIva situacionEmpresa = (ESituacionIva)situacionIvaEmpresa;

                /* Facturas A */
                if ((tipos & 1) > 0)
                {
                    if (situacionEmpresa == ESituacionIva.Inscripto)
                    {
                        facturas.Add("A");
                        facturas.Add("A/Leyenda");
                        facturas.Add("M");
                    }
                }

                /* Facturas B */
                if ((tipos & 2) > 0)
                {
                    if (situacionEmpresa == ESituacionIva.Inscripto)
                        facturas.Add("B");
                }

                /* Facturas C */
                if (situacionEmpresa == ESituacionIva.Exento || situacionEmpresa == ESituacionIva.Monotributista)
                    facturas.Add("C");

                /* Facturas D */
                if ((tipos & 4) > 0)
                {
                    facturas.Add("D");
                }

                /* Facturas E */
                facturas.Add("E");
            }

            return facturas;
        }
        public Cliente(Entity_cliente datos)
        {
            Datos = datos;
        }

        public void CargarDatosImpositivos()
        {
            datosImpositivos = new Entity_clientedatosimpositivos { Cliente_codcliente = datos.Codcliente, Cliente_empresa_idempresa = datos.Empresa_idempresa };
            datosImpositivos = (Entity_clientedatosimpositivos)CapaDatos.Datos.Manejador[datosImpositivos.GetType()].Cargar(datosImpositivos);
        }

        public void CargarDatosOtros()
        {

        }
    }
}
